#ifndef MAP_H
#define MAP_H

#include "linkedlist.h"

#define MAP_ROWS 22
#define MAP_COLS 20

// 地图元素定义
#define WALL '#'
#define DOT '.'
#define EMPTY ' '
#define PACMAN 'P'
#define GHOST 'G'

struct Ghost;

// 地图结构体
typedef struct {
    char grid[MAP_ROWS][MAP_COLS];  // 地图网格
    Dot* dotHead;                   // 豆子链表头指针
    int dotCount;                   // 豆子总数
} Map;

// 地图操作函数
void map_init(Map* map);                    // 初始化地图
void map_draw(Map* map); // 只接受Map* map参数
int map_eat_dot(Map* map, int row, int col); // 吃豆子，成功返回1，否则返回0
void map_free_dots(Map* map);               // 释放豆子链表
int map_is_valid_position(Map* map, int row, int col); // 检查位置是否有效（不是墙）

#endif // MAP_H 